package handler

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
	"www.bwbdim.com/internal/dto"
	"www.bwbdim.com/internal/service"
)

type UsersHandler struct {
	UsersService service.UsersServiceImpl
}

func NewUsersHandler() *UsersHandler {
	return &UsersHandler{
		service.NewUsersService(),
	}
}

// Login
// /*
func (u *UsersHandler) Login(c *gin.Context) {
	/**

	1. 接收参数  账号  密码
	2. 校验账号是否存在  密码是否正确
	3. 如果账号密码正确  登录成功  调用jwt生成 token
	4. 将token缓存到redis中
	5. 接口返回数据
	*/

	var userReq dto.LoginReq

	if err := c.ShouldBindJSON(&userReq); err != nil {
		// 返回错误信息
		// gin.H封装了生成json数据的工具
		c.JSON(http.StatusBadRequest, gin.H{"error": "参数异常"})
		return
	}

	resp, err := u.UsersService.Login(userReq)

	fmt.Println(resp)

	fmt.Println(err)
	if err != nil {
		c.JSON(http.StatusBadRequest, gin.H{
			"code":    -1,
			"message": "登录失败",
		})
		return
	}

	c.JSON(http.StatusOK, gin.H{
		"code":  0,
		"items": resp,
	})
}

// Register
// /*
func (u *UsersHandler) Register(c *gin.Context) {
	c.String(http.StatusOK, "hello World!")
}
